The present invention generally relates to identifying color spaces used to represent colors. In particular, the invention relates to identifying an unknown color space from a color specification defining a transformation of a color from a representation in the unknown color space to a representation in a well known color space.
Many current applications use various page description languages, such as the Adobe(copyright) PostScript(copyright) language, to describe color spaces such as the CIE-basedABC, and CIE-based DEFG families of color spaces. CIE-based color spaces are color spaces defined with respect to international standards specified by the Commission Internationale de l""Éclairage (CIE). CIE-basedABC color spaces are so named because colors in the space are represented by three components, arbitrarily named A, B, and C. Similarly, CIE-basedDEFG color spaces are so named because colors in the space are represented by four components, arbitrarily named D, E, F, and G. A common CIE-basedABC color space is the RGB color space. The color components of a color represented in the RGB color space are derived from the tristimulus CIE XYZ values according to an RGB color model.
Many applications manipulate color images assuming the image colors are represented in a local, well known color space. When such applications process colors imported from an external file, they must first transform the colors from their representation in the color space of the external file into the local, well known color space. The parameters necessary to effect this transformation are often contained within the external file in the form of a color specification. Typically, the color specification parameterizes color transformation from the external color space to the CIE XYZ color space. While the color specification typically includes information allowing the transformation of colors from the external color space to the well known color space, it need not identify the external color space by name.
For example, in the PostScript language, a CIE-based color specification includes the name of a color space family (e.g., CIE-basedABC) and parameters that characterize a color space without naming the color space or identifying a particular color model (e.g., RGB). Conventionally, if a CIE-basedABC color space is not manually identified by a user, a PostScript interpreter assumes the color space is either the L*a*b* color space or the RGB color space, and interprets the color values accordingly. Similarly, if a CIE-basedDEFG color space is not manually identified by a user, a PostScript interpreter assumes the color space is the CMYK color space and interprets the color values accordingly. These assumptions can result in incorrect color processing and color conversion. Consequently, a method for identifying color spaces from color specifications is needed.
Advantages that can be seen in implementations of the invention include one or more of the following.
In one aspect, the invention enables a color space to be determined automatically from a color specification without user intervention. In another aspect, the invention allows an unknown color space to be determined from the color properties of a well known color space and a color specification defining the transformation of colors from the unknown color space to the well known color space.
Once the unknown color space is identified, an application can decide whether it is necessary to perform a color space conversion. For example, if an application determines that the color space corresponding to a received CIE-based color specification is a CMYK color space, the application may be configured to bypass a color space conversion step in order to preserve the gray component replacement percentage in the input CMYK color component values.
In a further aspect, the invention can be used to determine whether a user defined color space is valid. For example, the invention can be used to test and prevent the creation of invalid or unintended color profiles in applications which allow users to create color profiles. Thus the invention may be used to prevent a user from inadvertently creating a GRB color space while attempting to create an RGB or similar color space.
The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features and advantages of the invention will become apparent from the description, the drawings, and the claims.